import java.util.HashSet;
import java.util.Iterator;

public class Test6 {
    // public int singleNumber(int[] nums) {
    //     int num = 0;

    //     for (int i = 0; i < nums.length; i++) {
    //         num = num ^ nums[i];
    //     }

    //     return num;
    // }

    public int singleNumber(int[] nums) {
        HashSet<Integer> set = new HashSet<>();

        for (int i = 0; i < nums.length; i++) {
            if (!set.contains(nums[i])) {
                set.add(nums[i]);
            } else {
                set.remove(nums[i]);
            }
        }

        // for (int i : set) {
        //     return i;
        // }

        Iterator<Integer> it = set.iterator();

        while (it.hasNext()) {
            return it.next();
        }

        return -1;
    }
}
